Telegram Group & Telegram Channel
🆒 5 трюков Jetpack Compose, о которых вы, вероятно, не знаете

Рассмотрим 5 недооцененных или малоизвестных трюков с пользовательским интерфейсом в Jetpack Compose, которые помогут вам создавать более эффективные, красивые и удобные в обслуживании пользовательские интерфейсы.

1️⃣ Анимируйте видимости с помощью переходов Enter/Exit

Вместо того чтобы переключать видимость с помощью if (visible) Box {}, вы можете использовать AnimatedVisibility для чистой анимации входа и выхода.

AnimatedVisibility(
visible = showDetails,
enter = fadeIn() + slideInVertically(),
exit = fadeOut() + slideOutVertically()
) {
Text("Here's a smooth transition")
}


Почему это важно: это избавляет от необходимости ручной обработки анимации и мгновенно улучшает UX.

2️⃣ Используйте модификатора Layout для создания кастомных макетов

Иногда стандартных Row, Column и Box недостаточно. Тогда на помощь приходит модификатор Modifier.layout.

Modifier.layout { measurable, constraints ->
val placeable = measurable.measure(constraints)
layout(placeable.width, placeable.height) {
// Flip layout horizontally
placeable.placeRelative(-placeable.width, 0)
}
}


Пример использования: создание зеркальных макетов, переворачивание компонентов или нестандартное расположение UI.

3️⃣ Разделяйте элементы в LazyColumn

Хотите вставить разделитель или пробел между каждым элементом?

LazyColumn {
itemsIndexed(items) { index, item ->
Text(item)
if (index != items.lastIndex) {
Divider()
}
}
}


Бонус: вы можете не ограничиваться разделителями, а вставлять между рядами рекламу, советы или информационный контент.

4️⃣ Используйте drawBehind для расширения фонового рисунка за пределы границ

Функция drawBehind позволяет рисовать за макетом компонента, игнорируя отступы или даже рисуя за пределами границ.

Modifier
.padding(16.dp)
.drawBehind {
drawRect(Color.Gray)
}


Пример: добавьте тень или градиентный фон, выходящий за границы содержимого.

5️⃣ Закрепляйте заголовки в LazyColumn с помощью stickyHeader

Jetpack Compose имеет нативную поддержку «липких» заголовков:

LazyColumn {
stickyHeader {
Text(
"Section Title",
modifier = Modifier.background(Color.White)
)
}
items(data) {
Text(it)
}
}


Отлично подходит для: групповых списков (например, контакты A-Z), разделов чата по дате и т.д.

Делитесь в комментариях лайфхаками, которыми вы пользуетесь 💬

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/mobileproglib/5878
Create:
Last Update:

🆒 5 трюков Jetpack Compose, о которых вы, вероятно, не знаете

Рассмотрим 5 недооцененных или малоизвестных трюков с пользовательским интерфейсом в Jetpack Compose, которые помогут вам создавать более эффективные, красивые и удобные в обслуживании пользовательские интерфейсы.

1️⃣ Анимируйте видимости с помощью переходов Enter/Exit

Вместо того чтобы переключать видимость с помощью if (visible) Box {}, вы можете использовать AnimatedVisibility для чистой анимации входа и выхода.

AnimatedVisibility(
visible = showDetails,
enter = fadeIn() + slideInVertically(),
exit = fadeOut() + slideOutVertically()
) {
Text("Here's a smooth transition")
}


Почему это важно: это избавляет от необходимости ручной обработки анимации и мгновенно улучшает UX.

2️⃣ Используйте модификатора Layout для создания кастомных макетов

Иногда стандартных Row, Column и Box недостаточно. Тогда на помощь приходит модификатор Modifier.layout.

Modifier.layout { measurable, constraints ->
val placeable = measurable.measure(constraints)
layout(placeable.width, placeable.height) {
// Flip layout horizontally
placeable.placeRelative(-placeable.width, 0)
}
}


Пример использования: создание зеркальных макетов, переворачивание компонентов или нестандартное расположение UI.

3️⃣ Разделяйте элементы в LazyColumn

Хотите вставить разделитель или пробел между каждым элементом?

LazyColumn {
itemsIndexed(items) { index, item ->
Text(item)
if (index != items.lastIndex) {
Divider()
}
}
}


Бонус: вы можете не ограничиваться разделителями, а вставлять между рядами рекламу, советы или информационный контент.

4️⃣ Используйте drawBehind для расширения фонового рисунка за пределы границ

Функция drawBehind позволяет рисовать за макетом компонента, игнорируя отступы или даже рисуя за пределами границ.

Modifier
.padding(16.dp)
.drawBehind {
drawRect(Color.Gray)
}


Пример: добавьте тень или градиентный фон, выходящий за границы содержимого.

5️⃣ Закрепляйте заголовки в LazyColumn с помощью stickyHeader

Jetpack Compose имеет нативную поддержку «липких» заголовков:

LazyColumn {
stickyHeader {
Text(
"Section Title",
modifier = Modifier.background(Color.White)
)
}
items(data) {
Text(it)
}
}


Отлично подходит для: групповых списков (например, контакты A-Z), разделов чата по дате и т.д.

Делитесь в комментариях лайфхаками, которыми вы пользуетесь 💬

🐸 Библиотека мобильного разработчика

#буст

BY Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/mobileproglib/5878

View MORE
Open in Telegram


Библиотека мобильного разработчика | Android iOS Swift Retrofit Moshi Chuck Telegram | DID YOU KNOW?

Date: |

Telegram hopes to raise $1bn with a convertible bond private placement

The super secure UAE-based Telegram messenger service, developed by Russian-born software icon Pavel Durov, is looking to raise $1bn through a bond placement to a limited number of investors from Russia, Europe, Asia and the Middle East, the Kommersant daily reported citing unnamed sources on February 18, 2021.The issue reportedly comprises exchange bonds that could be converted into equity in the messaging service that is currently 100% owned by Durov and his brother Nikolai.Kommersant reports that the price of the conversion would be at a 10% discount to a potential IPO should it happen within five years.The minimum bond placement is said to be set at $50mn, but could be lowered to $10mn. Five-year bonds could carry an annual coupon of 7-8%.

What is Telegram Possible Future Strategies?

Cryptoassets enthusiasts use this application for their trade activities, and they may make donations for this cause.If somehow Telegram do run out of money to sustain themselves they will probably introduce some features that will not hinder the rudimentary principle of Telegram but provide users with enhanced and enriched experience. This could be similar to features where characters can be customized in a game which directly do not affect the in-game strategies but add to the experience.

Библиотека мобильного разработчика | Android iOS Swift Retrofit Moshi Chuck from us


Telegram Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
FROM USA